package com.gxa.modules.service;

import com.gxa.common.vo.JsonResult;
import com.gxa.common.vo.R;
import com.gxa.modules.pojo.Waybill;

/**
 * @Auth WK
 * @DATE 2022/9/14 2:26
 * @DESCRIBE
 */
public interface WaybillService {

    /**
     * 1.运单列表查询
     * @param currentPage
     * @param pageSize
     * @return
     */
    JsonResult findWaybillList(Integer currentPage, Integer pageSize);

    /**
     * 2.新增运单
     * @param waybill
     * @return
     */
    R addWaybill(Waybill waybill);

    /**
     * 3.运单配载
     * @param waybillId
     * @return
     */
    R stowageWaybill(Integer waybillId);

    /**
     * 4.运单确认到达
     * @param waybillId
     * @return
     */
    R updateWaybill(Integer waybillId);

    /**
     * 5.查看运单详情
     * @param waybillId
     * @return
     */
    JsonResult findWaybill(Integer waybillId);

    /**
     * 6.删除运单
     * @param waybillId
     * @return
     */
    R delectWaybill(Integer waybillId);

    /**
     * 7.条件搜索运单
     * @param waybillNumber
     * @param customerName
     * @param payTime
     * @param currentPage
     * @param pageSize
     * @return
     */
    JsonResult findWaybillByCondition(String waybillNumber, String customerName, String payTime, Integer currentPage, Integer pageSize);

    /**
     * 8.运单查询（待配载)
     * @param currentPage
     * @param pageSize
     * @return
     */
    JsonResult findWaybillByStowage1(Integer currentPage, Integer pageSize);

    /**
     * 9.运单查询（已配载）
     * @param currentPage
     * @param pageSize
     * @return
     */
    JsonResult findWaybillByStowage2(Integer currentPage, Integer pageSize);

    /**
     * 10.运单查询（已完成）
     * @param currentPage
     * @param pageSize
     * @return
     */
    JsonResult findWaybillByStowage3(Integer currentPage, Integer pageSize);

    /**
     * 11.批量删除运单
     * @param waybillIds
     * @return
     */
    R delectWaybillList(Integer[] waybillIds);
}
